home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / phpMyAdmin / libraries / tooltip.js < prev    next >
Text File  |  2005-01-20  |  5KB  |  161 lines

  1. /* $Id: tooltip.js,v 1.2 2005/01/20 17:37:47 mkkeck Exp $ */
  2.  
  3.  
  4. /**
  5.   * Displays the Tooltips (hints), if we have some
  6.   * 2005-01-20 added by Michael Keck (mkkeck)
  7.   */
  8.  
  9.  
  10. var ttXpos = 0, ttYpos = 0;
  11. var ttXadd = 10, ttYadd = -10;
  12. var ttDisplay = 0, ttHoldIt = 0;
  13. // Check if browser does support dynamic content and dhtml
  14. var ttNS4 = (document.layers) ? 1 : 0;           // the old Netscape 4
  15. var ttIE4 = (document.all) ? 1 : 0;              // browser wich uses document.all
  16. var ttDOM = (document.getElementById) ? 1 : 0;   // DOM-compatible browsers
  17. if (ttDOM) { // if DOM-compatible, set the others to false
  18.     ttNS4 = 0;
  19.     ttIE4 = 0;
  20. }
  21.  
  22. if ( (ttDOM) || (ttIE4) || (ttNS4) ) {
  23.     // reference to TooltipContainer
  24.     if (ttNS4) {
  25.         var myTooltipContainer = document.TooltipContainer;
  26.     } else if (ttIE4) {
  27.         var myTooltipContainer = document.all('TooltipContainer');
  28.     } else if (ttDOM) {
  29.         var myTooltipContainer = document.getElementById('TooltipContainer');
  30.     }
  31.     // mouse-event
  32.     document.onmousemove = mouseMove;
  33.     if (ttNS4)
  34.         document.captureEvents(Event.MOUSEMOVE);
  35.  
  36. }
  37.  
  38. /**
  39.   * init the tooltip and write the text into it
  40.   */
  41. function textTooltip(theText) {
  42.     if    (ttDOM || ttIE4) {                   // document.getEelementById || document.all
  43.         myTooltipContainer.innerHTML = "";  // we should empty it first
  44.         myTooltipContainer.innerHTML = theText;
  45.     } else if (ttNS4) {                     // document.layers
  46.         var layerNS4 = myTooltipContainer.document;
  47.         layerNS4.write(theText);
  48.         layerNS4.close();
  49.     }
  50. }    
  51.  
  52. /**
  53.   * swap the Tooltip // show and hide
  54.   */
  55. var ttTimerID = 0;
  56. function swapTooltip(stat) {
  57.     if (ttHoldIt!=1) {
  58.         if (stat!='default') {
  59.             if (stat=='true')
  60.                 showTooltip(true);
  61.             else if (stat=='false')
  62.                 showTooltip(false);
  63.         } else {
  64.             if (ttDisplay)
  65.                 ttTimerID = setTimeout("showTooltip(false);",500);
  66.             else
  67.                 showTooltip(true);
  68.         }
  69.     } else {
  70.         if (ttTimerID) {
  71.            clearTimeout(ttTimerID);
  72.            ttTimerID = 0;
  73.         }
  74.         showTooltip(true);
  75.     }
  76. }
  77.  
  78. /**
  79.   * show / hide the Tooltip
  80.   */
  81. function showTooltip(stat) {
  82.     if (stat==false) {
  83.         if (ttNS4)
  84.             myTooltipContainer.visibility = "hide";
  85.         else
  86.             myTooltipContainer.style.visibility = "hidden";
  87.         ttDisplay = 0;
  88.     } else {
  89.         if (ttNS4)
  90.             myTooltipContainer.visibility = "show";
  91.         else
  92.             myTooltipContainer.style.visibility = "visible";
  93.         ttDisplay = 1;
  94.     }
  95. }
  96. /**
  97.   * hold it, if we create or move the mouse over the tooltip
  98.   */
  99. function holdTooltip() {
  100.     ttHoldIt = 1;
  101.     swapTooltip('true');
  102.     ttHoldIt = 0;
  103. }
  104.  
  105. /**
  106.   * move the tooltip to mouse position
  107.   */
  108. function moveTooltip(posX, posY) {
  109.     if (ttDOM || ttIE4) {
  110.         myTooltipContainer.style.left    =    posX + "px";
  111.         myTooltipContainer.style.top  =    posY + "px";
  112.     } else if (ttNS4) {
  113.         myTooltipContainer.left = posX;
  114.         myTooltipContainer.top  = posY;
  115.     }
  116. }
  117.  
  118. /**
  119.   * build the tooltip
  120.   */
  121. function pmaTooltip(theText) {
  122.     textTooltip(theText);
  123.     moveTooltip((ttXpos + ttXadd), (ttYpos + ttYadd));
  124.     holdTooltip();
  125. }
  126.  
  127. /**
  128.   * register mouse moves
  129.   */
  130. function mouseMove(e) {
  131.     var x=0, y=0, plusX=0, plusY=0, docX=0; docY=0;
  132.     var divHeight = myTooltipContainer.clientHeight;
  133.     var divWidth  = myTooltipContainer.clientWidth;
  134.     if (navigator.appName.indexOf("Explorer")!=-1) {
  135.         if (document.documentElement && document.documentElement.scrollTop) {
  136.             plusX = document.documentElement.scrollLeft;
  137.             plusY = document.documentElement.scrollTop;
  138.             docX = document.documentElement.offsetWidth + plusX;
  139.             docY = document.documentElement.offsetHeight + plusY;
  140.         } else {
  141.             plusX = document.body.scrollLeft;
  142.             plusY = document.body.scrollTop;
  143.             docX = document.body.offsetWidth + plusX;
  144.             docY = document.body.offsetHeight + plusY;
  145.         }
  146.         x = event.x + plusX;
  147.         y = event.y + plusY;
  148.     } else {
  149.         x = e.pageX;
  150.         y = e.pageY;
  151.         docX = document.body.clientWidth;
  152.         docY = document.body.clientHeight;
  153.     }
  154.     ttXpos = x;
  155.     ttYpos = y;
  156.     if ((ttXpos + divWidth) > docX)
  157.         ttXpos = ttXpos - (divWidth + (ttXadd * 2));
  158.     if ((ttYpos + divHeight) > docY)
  159.         ttYpos = ttYpos - (divHeight + (ttYadd * 2));
  160. }
  161.